package cn.wang.web.sysadmin;

import cn.wang.entity.sysadmin.Dept;
import cn.wang.entity.sysadmin.Module;
import cn.wang.entity.sysadmin.Role;
import cn.wang.service.sysadmin.DeptService;
import cn.wang.service.sysadmin.ModuleService;
import cn.wang.service.sysadmin.RoleService;
import cn.wang.utils.Pagination;
import cn.wang.web.BaseAction;
import com.opensymphony.xwork2.ModelDriven;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import java.util.List;

/**
 * Created by john on 2017/11/1.
 */
@Controller
public class ModuleAction extends BaseAction implements ModelDriven<Module> {
    private Pagination page = new Pagination();
    private List<Module> moduleList;
    private List<Dept> deptList;
    private Module model = new Module();
    @Autowired
    private ModuleService moduleService;
    @Autowired
    private DeptService deptService;
    //分页
    public String list() {
        page = moduleService.findPage(page.getPageNo(), page.getPageSize());
        page.setUrl("moduleAction_list");
        push(page);
        return "list";
    }
    //添加用户前 先查询所有部门列表 所属领导
    public String tocreate() {
        moduleList=moduleService.findAll();
        deptList =deptService.findAll();
       return "tocreate";
    }
    //查寻单个部门信息
    public String toview() {
       // model=moduleService.findById(model.getId());
        push(model);
        return "toview";
    }
    //添加部门
    public String insert() {
        moduleService.save(model);
        return "rlist";
    }
    //更新部门 先查询
    public String toupdate() {
        //查询所有部门

        model=moduleService.findById(model.getId());
        push(model);
        //根据id查询老部门
        //移除本部门
        //moduleList.remove(model);
        return "toupdate";
    }
    public String update() {
        moduleService.update(model);
        return "rlist";
    }
    //删除部门 多个部门删除时 id 字符类型id会 拼接在一起(,空格)
    public String delete() {
      if (model.getId() == null) {
            return "rlist";
        }
        String[] ids = model.getId().split(", ");
        moduleService.delete(ids);
        return "rlist";
    }
    //权限控制
    public String tomodule(){
        //查询出所有角色
        return "tomodule";
    }

    public void setPage(Pagination page) {
        this.page = page;
    }

    @Override
    public Module getModel() {
        //将字段名设为model使一行代码两用 1模型驱动 2 字段set方法
        return model;
    }
    public List<Module> getmoduleList() {
        return moduleList;
    }
    public List<Dept> getDeptList() {
        return deptList;
    }
}
